]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
MessageTray: fix notification height expansion
authorGiovanni Campagna <gcampagna@src.gnome.org>
Fri, 30 Nov 2012 15:05:38 +0000 (16:05 +0100)
committerGiovanni Campagna <gcampagna@src.gnome.org>
Fri, 30 Nov 2012 17:42:18 +0000 (18:42 +0100)
MessageTray._tween removes all tweens now, so it removes also
those setting the height to expanded for critical notifications.

This is a regression from 1a27d7dfc02c06bd0ccf4258a9108207b8832ce4

https://bugzilla.gnome.org/show_bug.cgi?id=689295

js/ui/messageTray.js

index 0241dbdc3919d94e975823e1f978537f24586bd0..35665bd5aa35143fe3957752dc8a8062ca4aee01 100644 (file)
@@ -2263,40 +2263,28 @@ const MessageTray = new Lang.Class({
     _updateShowingNotification: function() {
         this._notification.acknowledged = true;
 
-        Tweener.removeTweens(this._notificationWidget);
-
         // We auto-expand notifications with CRITICAL urgency.
-        // We use Tweener.removeTweens() to remove a tween that was hiding the notification we are
-        // updating, in case that notification was in the process of being hidden. However,
-        // Tweener.removeTweens() would also remove a tween that was updating the position of the
-        // notification we are updating, in case that notification was already expanded and its height
-        // changed. Therefore we need to call this._expandNotification() for expanded notifications
-        // to make sure their position is updated.
-        if (this._notification.urgency == Urgency.CRITICAL || this._notification.expanded)
+        if (this._notification.urgency == Urgency.CRITICAL)
             this._expandNotification(true);
 
         // We tween all notifications to full opacity. This ensures that both new notifications and
         // notifications that might have been in the process of hiding get full opacity.
         //
-        // We tween any notification showing in the banner mode to banner height
-        // (this._notificationWidget.y = -this._notificationWidget.height).
+        // We tween any notification showing in the banner mode to the appropriate height
+        // (which is banner height or expanded height, depending on the notification state)
         // This ensures that both new notifications and notifications in the banner mode that might
-        // have been in the process of hiding are shown with the banner height.
+        // have been in the process of hiding are shown with the correct height.
         //
         // We use this._showNotificationCompleted() onComplete callback to extend the time the updated
         // notification is being shown.
-        //
-        // We don't set the y parameter for the tween for expanded notifications because
-        // this._expandNotification() will result in getting this._notificationWidget.y set to the appropriate
-        // fully expanded value.
+
         let tweenParams = { opacity: 255,
+                            y: -this._notificationWidget.height,
                             time: ANIMATION_TIME,
                             transition: 'easeOutQuad',
                             onComplete: this._showNotificationCompleted,
                             onCompleteScope: this
                           };
-        if (!this._notification.expanded)
-            tweenParams.y = -this._notificationWidget.height;
 
         this._tween(this._notificationWidget, '_notificationState', State.SHOWN, tweenParams);
    },